Ruby هي لغة برمجة ديناميكية وكائنية التوجه طورتها يوكيهيرو ماتسوموتو في التسعينيات. تُعرف ببساطتها وقوتها، وتُستخدم بشكل واسع في تطوير الويب (مثل Ruby on Rails)، أتمتة المهام، ومعالجة البيانات. هذه الدورة سترشدك عبر الأساسيات بأمثلة عملية.
Ruby هي لغة بسيطة وأنيقة تُركز على سهولة القراءة والكتابة.
ruby
لتشغيل الملفات أو irb
للتفاعل.ruby -v
.
puts "مرحبًا بك في Ruby!" # ✅ مرحبًا بك في Ruby!
Ruby ديناميكية ولا تحتاج إلى تعريف أنواع المتغيرات مسبقًا.
name = "علي"
age = 25
price = 19.99
active = true
puts "#{name} عمره #{age} ونشط: #{active}" # ✅ علي عمره 25 ونشط: true
التحكم في تدفق البرنامج باستخدام الشروط والتكرار.
age = 18
if age >= 18
puts "بالغ"
else
puts "قاصر"
end
[1, 2, 3].each { |n| puts n } # ✅ 1 2 3
الدوال تُستخدم لتنظيم الكود وإعادة استخدامه.
def
.
def greet(name = "زائر")
"مرحبًا، #{name}!"
end
puts greet("علي") # ✅ مرحبًا، علي!
puts greet # ✅ مرحبًا، زائر!
Ruby يوفر هياكل بيانات مرنة لتخزين العناصر.
[]
.{}
.each
للوصول للعناصر.
fruits = ["تفاح", "موز"]
person = { name: "علي", age: 25 }
puts fruits[0] # ✅ تفاح
puts person[:name] # ✅ علي
fruits.each { |f| puts f } # ✅ تفاح موز
Ruby يجعل التعامل مع الملفات سهلاً وقويًا.
File.read
لقراءة محتوى الملف.File.write
لإنشاء أو تعديل ملف.Dir
لإدارة المجلدات.
File.write("test.txt", "مرحبًا، Ruby!")
content = File.read("test.txt")
puts content # ✅ مرحبًا، Ruby!
puts Dir.pwd # ✅ المسار الحالي
Ruby هي لغة كائنية التوجه، وكل شيء فيها كائن.
class
.@
للمتغيرات المثيلية.
class Person
def initialize(name)
@name = name
end
def greet
puts "مرحبًا، أنا #{@name}!"
end
end
person = Person.new("علي")
person.greet # ✅ مرحبًا، أنا علي!
المحددات تتحكم في الوصول إلى الدوال والمتغيرات.
class Secret
def public_method
puts "عام"
end
private
def private_method
puts "خاص"
end
end
s = Secret.new
s.public_method # ✅ عام
# s.private_method # ❌ خطأ
إدارة الأخطاء لضمان استمرارية البرنامج.
begin
result = 10 / 0
rescue ZeroDivisionError => e
puts "خطأ: #{e}"
ensure
puts "تم التنفيذ"
end # ✅ خطأ: divided by 0 \n تم التنفيذ
الموديولات تُستخدم لتنظيم الكود وإضافة وظائف مشتركة.
module
.
module Greetings
def say_hello
puts "مرحبًا!"
end
end
class Person
include Greetings
end
p = Person.new
p.say_hello # ✅ مرحبًا!
Ruby يوفر أدوات قوية لمعالجة النصوص.
+
أو #{}
.upcase
وsplit
.include?
لفحص السلاسل.
text = "مرحبًا"
puts text + " Ruby" # ✅ مرحبًا Ruby
puts text.upcase # ✅ مرحبًا
puts text.include?("ح") # ✅ true
الميتا برمجة تتيح تعديل الكود ديناميكيًا أثناء التشغيل.
class Dynamic
def hello
puts "مرحبًا"
end
end
d = Dynamic.new
d.send(:hello) # ✅ مرحبًا
class Dynamic
define_method(:greet) do
puts "تحية!"
end
end
d.greet # ✅ تحية!
تطبيق عملي يجمع الأساسيات.
class Task
attr_accessor :title, :done
def initialize(title)
@title = title
@done = false
end
def complete
@done = true
puts "#{@title} تم إكمالها!"
end
end
tasks = []
tasks << Task.new("كتابة كود")
tasks << Task.new("اختبار")
tasks.each do |task|
task.complete
end # ✅ كتابة كود تم إكمالها! \n اختبار تم إكمالها!